﻿#ifndef CUSTOM_SURFACE_INCLUDED
#define CUSTOM_SURFACE_INCLUDED

struct Surface {
	float3 position;
	float3 normal;
	float3 interpolatedNormal;
	float3 viewDirection;
	float depth;
	float3 color;
	float alpha;
	float metallic;
	float occlusion;
	float smoothness;
	float fresnelStrength;
	float dither;
	uint renderingLayerMask;

#if _SKIN
	half curvature;
	half thickness;
	half thicknessScale;
	float3 subColor;
	half power;
	half distortion;
#elif _FABRIC 
	half3 fabricScatterColor;
	half fabricScatterScale;
#elif _SSSSS
	half3 ssssScatterColor;	
#endif

#if defined(_IBL)&&defined(_IBL_RP_ON)
	half irradianceScale;
	half specularReflectScale;
#endif
	
};

#endif